#include <iostream>
#include <string>

int main() {
  std::string str1 = "Hello World!";
  std::cout << "str1: " << str1 << std::endl;

  std::string str2(str1);
  std::cout << "str1: " << str1 << ", str2: " << str2 << std::endl;

  // string 类的移动构造，将原对象字符串数据转移到了新的对象上
  std::string str3(std::move(str2));  // 经过 std::move 后， str2 变为了空字符串
  std::cout << "str1: " << str1 << ", str2: " << str2 << ", str3: " << str3
            << std::endl;

  return 0;
}